@echo off
chcp 65001 >nul
echo 作用：收集所有名称带中划线（-）的文件夹名称到 Result.txt 文本文档中

setlocal EnableDelayedExpansion

:: 等待用户按键
set /p dummy=按 Enter 键开始：

:: 记录开始时间（秒）
for /f "tokens=1-4 delims=:.," %%a in ("%TIME%") do (
    set /a start_seconds=%%a*3600 + %%b*60 + %%c
    set start_milliseconds=%%d
)

:: 输出文件
set outputFile=Result.txt
set /a count=0

:: 删除已有的 Result.txt 文件（如果存在）
if exist "%outputFile%" del "%outputFile%"

:: 遍历当前目录及所有子目录下的文件夹
for /d /r %%i in (*) do (
    set "folderName=%%~nxi"

    :: 正则匹配符合格式的文件夹名称
    echo !folderName! | findstr /r /c:"^[^ ].*-[^ ].*$" >nul
    if not errorlevel 1 (
        echo !folderName! >> "%outputFile%"
        set /a count+=1
    )
)

:: 记录结束时间（秒）
for /f "tokens=1-4 delims=:.," %%a in ("%TIME%") do (
    set /a end_seconds=%%a*3600 + %%b*60 + %%c
    set end_milliseconds=%%d
)

:: 计算耗时（秒）
set /a elapsed_seconds=end_seconds - start_seconds
:: 防止跨午夜导致负值
if %elapsed_seconds% lss 0 set /a elapsed_seconds+=86400

:: 输出结果
echo 处理完成，总计收集数：%count%（耗时 %elapsed_seconds% 秒）
set /p dummy=按 Enter 键关闭：
exit